package com.viajero.movil;

import com.viajero.movil.dbviajero.ViajeroSQLiteHelper;
import com.viajero.movil.dominio.Departamento;
import com.viajero.movil.dominio.Distrito;
import com.viajero.movil.dominio.Hotel;
import com.viajero.movil.dominio.Viajero;
import com.viajero.movil.negocio.DepartamentoNeg;
import com.viajero.movil.negocio.DistritoNeg;
import com.viajero.movil.negocio.HotelNeg;
import com.viajero.movil.negocio.ViajeroNeg;

import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.Spinner;
import android.widget.Toast;

public class BuscarHotelActivity extends Activity implements OnClickListener {

	ViajeroSQLiteHelper vdb;
	
	Viajero viajero;
	ViajeroNeg vNeg;
	Departamento depa[];
	DepartamentoNeg depaNeg;
	Distrito dist[];
	DistritoNeg distNeg;
	Hotel hotel[];
	HotelNeg hotelNeg;
	
	Bundle bund;
	
	Spinner spDepartamentos;
	RatingBar rbEstrellas;
	EditText txtPrecio;
	Button btnBuscarHotel;
	Button btnLimpiar;
	Button btnCancelar;
	
	int posH;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.buscar_hotel);
		initComponents();
	}

	private void initComponents() {
		spDepartamentos =(Spinner)findViewById(R.id.spDepartamento) ;
		rbEstrellas = (RatingBar)findViewById(R.id.rbEstrellas);
		txtPrecio = (EditText)findViewById(R.id.txtPrecio);
		btnBuscarHotel = (Button) findViewById(R.id.btnBuscarHotel);
		btnLimpiar = (Button)findViewById(R.id.btnLimpiar);
		btnCancelar = (Button) findViewById(R.id.btnCancelar);
		
		
		vdb = new ViajeroSQLiteHelper(this);
		
		viajero = new Viajero();
		vNeg = new ViajeroNeg();
		depaNeg = new DepartamentoNeg();
		distNeg = new DistritoNeg();
		hotelNeg = new HotelNeg();
		
		
		
		
		
		bund = getIntent().getExtras();
		
		cargarDepartamentos();
		
		

		rbEstrellas.setRating((float)0.5);
		spDepartamentos.setSelection(0);
		
		btnBuscarHotel.setOnClickListener(this);
		btnLimpiar.setOnClickListener(this);
		btnCancelar.setOnClickListener(this);
	}

	private void cargarDepartamentos() {
		
		depa = depaNeg.cargarDepartamentos(vdb);
		String depas[] = new String[depa.length];
		
		for(int i = 0; i<depa.length; i++){
			depas[i] =  depa[i].getNombre();
		}
		
		ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, depas);
		adaptador.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spDepartamentos.setAdapter(adaptador);
		
		spDepartamentos.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
			
			public void onItemSelected(AdapterView<?> parent,android.view.View v, int position, long id) {
				
				if(position==0){
					posH = 0;
				}else{
					posH = position;
				}
			}
            public void onNothingSelected(AdapterView<?> parent) {
                    //
            }
		});
		
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.btnBuscarHotel:
			if(spDepartamentos.getSelectedItemPosition()==0){
				Toast.makeText(this,"Porfavor seleccione un departamento", Toast.LENGTH_SHORT).show();
				break;
			}else if(txtPrecio.getText().toString().equals("")){
				Toast.makeText(this,"Porfavor ingrese un precio maximo por noche", Toast.LENGTH_SHORT).show();
				break;
			}else if(txtPrecio.getText().toString().equals(".")){
				Toast.makeText(this,"El precio ingresado es invalido", Toast.LENGTH_SHORT).show();
				break;
			}else if(Double.parseDouble(txtPrecio.getText()+"")<=0.0){
				Toast.makeText(this,"Ingrese un precio por noche mayor a S/.0", Toast.LENGTH_SHORT).show();
				break;
			}
				String busc[] = new String[]{depa[posH].getId_departamento()+"",rbEstrellas.getRating()+"",txtPrecio.getText()+""};
				hotel = hotelNeg.cargarHoteles(vdb, busc);
				if(hotel != null){
					Intent iListaHoteles = new Intent(this,ResultadoHotelActivity.class);
					bund.putString("id_departamento", busc[0]);
					bund.putString("departamento", depa[posH].getNombre());
					bund.putString("estrellas", busc[1]);
					bund.putString("precio", busc[2]);
					iListaHoteles.putExtras(bund);
					startActivity(iListaHoteles);
				}else{
					Toast.makeText(this,"No se encontro alojamiento con las caracteristicas detalladas, porfavor intente con otras", Toast.LENGTH_LONG).show();
				}
				
			break;
		case R.id.btnLimpiar:
			rbEstrellas.setRating((float)0.5);
			spDepartamentos.setSelection(0);
			txtPrecio.setText("");
			break;
		case R.id.btnCancelar:
			finish();
			break;

		}
	}

	
	
	
}
